// 云函数入口文件
const cloud = require("wx-server-sdk");
cloud.init();
const db = cloud.database();

// 通过查找 openId 添加一个人为管理员

exports.main = async (event, context) => {
    if (!event.hasOwnProperty("doc")) {
        return { err: "doc", desc: "请添加 doc 字段" };
    }
    if (event.userInfo.openId == event.doc)
        return { err: "permission denied", desc: "用户不能操作自身的权限" };

    // ! 权限：调用人必为 Manager
    const { result: InvokerIsManager } = await cloud.callFunction({
        name: "isManager",
        data: {
            UserOpenId: event.userInfo.openId,
        },
    });
    if (InvokerIsManager !== true)
        return {
            err: "permission denied.\n" + JSON.stringify(InvokerIsManager),
            desc: "没有权限",
        };
    return db
        .collection("User")
        .doc(event.doc)
        .update({
            data: {
                // 注意，这里的 判断表示 isManager 这个位置必须填 true 而不能是字符串的 true
                isManager: event.isManager === true ? true : false,
            },
        })
        .then(() => ({
            doc: event.doc,
            desc: "管理员权限修改成功",
        }));
};
